package jtracking_client;


/**
 *  <p style="margin-top: 0">
 *        extends Thread
 *  <br>    </p>
 */
// <editor-fold defaultstate="collapsed" desc=" UML Marker ">
// #[regen=yes,id=DCE.497E3B74-6996-3183-0DE1-9419F2FF50AF]
// </editor-fold>
public class Organisator extends Thread{
    
    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,id=DCE.C21097C5-56FF-1593-74A7-04C7CCA2B5E4]
    // </editor-fold>
    private DatenVersender datenVersender;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,id=DCE.4874570D-A2D3-4876-67B9-2282A7ACBB09]
    // </editor-fold>
    private Informant informant;

    public boolean weitermachen=true;

    /**
     * aktualisierungszeit in millisekunden
     * = 300 sekunden = 5 minuten
     */
    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,id=DCE.C653FA46-B473-7FDA-596E-6F03CB882E51]
    // </editor-fold>
    private final int aktualisierungszeit = 300000;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,id=DCE.7BDA96A5-065E-2157-DAA0-2369BB69927F]
    // </editor-fold>
    public Organisator () {
        //alle threads initialisieren,
        //alle objekte erzeugen
    }

    /**
     * Diese Methode wird beim ausführen des Threads gestartet
     * und führt in dem von {@link aktualisierungszeit} spezifizierten Zeitabstand
     * die Methode {@link aktualisieren} aus
     */
    @Override
    public void run()
    {
        //Threads initialisieren
        //Objekte erzeugen
        datenVersender = new DatenVersender("localhost", 58722);
        informant = new Informant();
        datenVersender.start();
        while (true){
            if(weitermachen)
                aktualisieren();
            try {
                Thread.sleep(aktualisierungszeit);
            } catch ( InterruptedException e ) {}
        }
    }

    /**
     * erzeugt ein neues Datenpaket und übergibt es an datenVersender
     */
    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,id=DCE.BD7CFC10-DC53-BC88-2473-3CD101216150]
    // </editor-fold>
    protected void aktualisieren ()
    {
        System.out.println("erzeuge neues Paket...");
        datenVersender.datenVersenden(informant.newDatenpaket());
    }

}